package com.hq.ims.data.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hq.ims.data.entityenum.EnumCheckType;
import com.hq.ims.data.entityenum.EnumCompanyUpdateType;
import com.hq.mybatis.base.BaseModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.hq.ims.data.entityenum.EnumAuditStatus;



import java.time.LocalDateTime;

/**
 * @Author jiang bai ping
 * @Email 526666031@qq.com
 * @DateTime 2024-10-28 09:05:29
 * @Detail 公司变更记录
 */
@Alias("CompanyChangeHistory")
@TableName(value = "company_change_history")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value="公司变更记录")
public class CompanyChangeHistory extends BaseModel<CompanyChangeHistory> implements Serializable{

    @ApiModelProperty(value="主键")
	@TableId(value="`id`",type = IdType.ASSIGN_UUID)
	private String id;
	
	@ApiModelProperty(value="公司id")
	@TableField(value="`company_id`")
	private String companyId;
	
	@ApiModelProperty(value="公司审核id")
	@TableField(value="`company_check_id`")
	private String companyCheckId;
	
	@ApiModelProperty(value="变更类型（0全部信息变更，1基本信息变更，2规则变更）")
	@TableField(value="`change_type`")
	private EnumCompanyUpdateType changeType;
	
	@ApiModelProperty(value="审核状态")
	private EnumAuditStatus auditStatus;
	
	@ApiModelProperty(value="拒绝理由")
	@TableField(value="`reject_reason`")
	private String rejectReason;
	
	@ApiModelProperty(value="创建时间 - 不需程序员处理")
	@TableField(value="`create_date_time`",fill = FieldFill.INSERT)
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	private LocalDateTime createDateTime;
	
	@ApiModelProperty(value="更新时间 - 不需程序员处理")
	@TableField(value="`update_date_time`",fill = FieldFill.INSERT_UPDATE)
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	private LocalDateTime updateDateTime;
	
	@ApiModelProperty(value="创建用户名称")
	@TableField(value="`create_user_name`")
	private String createUserName;
	
	@ApiModelProperty(value="更新用户名")
	@TableField(value="`update_user_name`")
	private String updateUserName;
	
	@ApiModelProperty(value="乐观锁 - 不需程序员处理")
	@TableField(value="`version`")
	private Integer version;
	
	@ApiModelProperty(value="是否删除")
	@TableField(value="`is_del`")
	private Boolean isDel;
}
